[% setvar title Perl 6 Summary for the week ending 20030706 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='Perl 6 Summary for the week ending 20030706'></a><h1>Perl 6 Summary for the week ending 20030706</h1>
<p>Welcome to this week's Perl 6 Summary, coming to you live from a
gatecrashed Speakers' lounge at OSCON/TPC, surrounded by all the cool
people like Dan Sugalski, Lisa Wolfisch, Graham Barr and Geoff Young,
who aren't distracting me from writing this summary at all.</p>
<p>10 minutes later, after the arrival of James Duncan and Adam Turoff,
I'm still not being distracted. Oh no... Leon Brocard's just arrived,
which helps with the running joke, but not with the 'getting the
summary written'.</p>
<p>So, we'll start as usual with the goings on in perl6-internals.</p>
<a name='More on Parrot's multiple stack implementations'></a><h2>More on Parrot's multiple stack implementations</h2>
<p>Dan pointed out that, although Control, User and Pads share the same
stack engine, Pads should be implemented using a simple linked
list. He also confessed that all the register backing stacks should
share an implementation, but that he'd been too lazy to macro things
up properly.</p>
<p><a href='http://groups.google.com/groups?threadm=a05210614bb27df94abdb@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<a name='Building IMCC as parrot'></a><h2>Building IMCC as parrot</h2>
<p>Leo T&ouml;tsch posted an initial patch to make IMCC build as the
parrot executable. And there was much <b><i>Makefile</i></b> debugging.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-22855-60060.13.3692622089707@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Parrot IO work'></a><h2>Parrot IO work</h2>
<p>Work on Parrot's IO system was ongoing this week.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-22857-60064.4.51506402790031@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Parrot Exceptions'></a><h2>Parrot Exceptions</h2>
<p>Discussion of possibly resumable exceptions continued, and morphed
into a discussion of the workings of warnings when Benjamin Goldberg
wondered if warnings were being implemented as exceptions.</p>
<p>The aren't. I think Benjamin was being confused by Perl 6's <code>fail</code>
function which can either issue a warning and return undef to its
caller's caller, or throw an exception, depending on a pragma whose
name I can't for the life of me remember.</p>
<p><a href='http://groups.google.com/groups?threadm=3F005CE3.F19682A6@hotpop.com' target='_blank'>groups.google.com</a></p>
<a name='Parrot's build system.'></a><h2>Parrot's build system.</h2>
<p>Last week Dan asked for help writing a configuration and build system
that would allow per-C-file compiler flag overrides and various other
complexities. This week Alan Burlison worried that this approach
looked '<i>very</i> suspect'. This sparked a discussion of the proper way
to do interrupt safe queueing, reentrant code and other scary
things.</p>
<p>I may be misreading what's being said in the thread, but it
seems that the scariest thing about the whole issue is that there's no
portable way of doing the Right Thing, which leads to all sorts of
painful platform dependencies and hoopage (From 'to jump through
hoops', anything which requires you to jump through a lot of hoops has
a high degree of hoopage. For the life of me I can't remember if it
was me or Leon Brocard who coined the term).</p>
<p>Swamps were mentioned. Monty Python skits were quoted. Uri Guttman
was overtaken by (MUAHAHAHAHAHA!) megalomania.</p>
<p><a href='http://groups.google.com/groups?threadm=3F00BCD8.5090108@sun.com' target='_blank'>groups.google.com</a></p>
<a name='Klaas-Jan Stol Explains Everything (part 1)'></a><h2>Klaas-Jan Stol Explains Everything (part 1)</h2>
<p>Last week I mentioned that I didn't know what Klaas-Jan Stol was
driving at when he proposed a general, language-independent &quot;argument&quot;
PMC class and hoped that he would provide an explanation, with code
fragments.</p>
<p>This week, Klaas-Jan came through, and I think I understand what he
wants. Go read his explanation and see if you understand it
too. It's to do with when a parameter should be passed by reference or
by value. Parrot currently assumes that Strings and PMCs are passed by
reference, and that integers and floats are passed by value.</p>
<p>There was some discussion of whether support for optionally passing
PMCs by value should be added at the parrot level or whether
individual language compilers should be responsible for calling the
appropriate PMC methods.</p>
<p><a href='http://groups.google.com/groups?threadm=BAY1-DAV73yhKpOxLYZ000348b0@hotmail.com' target='_blank'>groups.google.com</a></p>
<a name='Moving ParrotIO to PMCs'></a><h2>Moving ParrotIO to PMCs</h2>
<p>J&uuml;rgen B&ouml;mmels is working hard on moving Parrot's
IO-system to a fully garbage collected PMC based system. He posted an
initial patch transforming ParrotIO structures into PMCs using a simple
wrapping approach.</p>
<p>The patch had problems because the new ParrotIO PMCs were marked as
needing active destruction, which could lead to problems with files
being closed twice and memory structures getting cleaned up
twice. Which is tends to make memory leak detecting tools a little
unhappy. This bug proved to be easy to fix. But then another one
reared it's head and has so far proved rather harder to fix.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-22864-60093.6.14456938094875@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Jako gets modules (sort of)'></a><h2>Jako gets modules (sort of)</h2>
<p>Gregor N Purdy announced that he's added rudimentary module support to
his Jako little(?) language. A little late he announced that he'd
added rather less rudimentary module support.</p>
<p><a href='http://groups.google.com/groups?threadm=1057204345.17931.14.camel@borg.focusresearch.com' target='_blank'>groups.google.com</a></p>
<a name='Stupid Parrot Tricks'></a><h2>Stupid Parrot Tricks</h2>
<p>Clinton Pierce, shooting for his 'mad genius' badge announced that
he'd implemented a simple CGI script in Parrot BASIC. Everyone
gasped. Robert Spier decided that the time may have come to start
playing with <code>mod_parrot</code> (embedding Parrot in Apache) again.</p>
<p><a href='http://groups.google.com/groups?threadm=200307031813953.SM00173@localhost' target='_blank'>groups.google.com</a></p>
<p><a href='http://www.camfriends.org/testform.html' target='_blank'>www.camfriends.org</a> -- that BASIC CGI URL</p>
<a name='Lazy Arrays'></a><h2>Lazy Arrays</h2>
<p>Luke Palmer is thinking about implementing LazyArray and LazySequence
PMCs and outlined his design approach for the list. Benjamin Goldberg
and Leo T&ouml;tsch both contributed answers to some of the questions
Luke raised.</p>
<p><a href='http://groups.google.com/groups?threadm=ygcllvf9qbm.fsf@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='wxWindows Support'></a><h2>wxWindows Support</h2>
<p>David Cuny asked if there was any interest in supporting wxWindows (an
open source, cross platform, native UI framework for a pile of
operating systems).</p>
<p>Leo thought that one could use wxWindows from Parrot via the NCI
(Native Call Interface), but that it wouldn't be at all easy. He
thought that the best way would be a custom dynamically loaded PMC,
tied to good object support in Parrot. Neither of which we have (yet).</p>
<p>Leo also thought that using Parrot as a GCC backend would be a
reasonably sensible idea, but that it 'would need some extensions at
both sides.' He wondered if there were any GCC people listening.</p>
<p><a href='http://groups.google.com/groups?threadm=200307040708.49426.dcuny@lanset.com' target='_blank'>groups.google.com</a></p>
<a name='Hash Iterators'></a><h2>Hash Iterators</h2>
<p>Leo checked in his 'buggy initial try' at implementing a hash iterator
for Parrot, but he wasn't entirely happy with his implementation. Sean
O'Rourke suggested a Better Way, which Leo immediately took advantage of.</p>
<p><a href='http://groups.google.com/groups?threadm=3F06C195.4090901@nextra.at' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>Almost nothing happened.</p>
<a name='printf like formatting in interpolated strings'></a><h2><code>printf</code> like formatting in interpolated strings</h2>
<p>Jonadab the Unsightly One made another proposal in this longrunning
thread.</p>
<p><a href='http://groups.google.com/groups?threadm=he68nw9k.fsf@jonadab.homeip.net' target='_blank'>groups.google.com</a></p>
<a name='Perl 6 Daydreams'></a><h2>Perl 6 Daydreams</h2>
<p>The directed daydreaming continued. Jonadab is looking forward to Perl
6's new improved object model (him and many, many others I
believe). This morphed into a discussion of porting Inform to run on
Parrot. Which spawned thoughts of when Parrot achieves its final goal
of being able to load and run z-code based interactive fiction. (The
theory is that getting z-code working on Parrot will be the final goal
because once that happens the dev team will stop working on Parrot and
spend all their time playing Zork).</p>
<p><a href='http://groups.google.com/groups?threadm=d6gwnv5w.fsf@jonadab.homeip.net' target='_blank'>groups.google.com</a></p>
<a name='Aliasing an array slice'></a><h2>Aliasing an array slice</h2>
<p>Dan Brook wondered if it would be either possible or sane to bind a
variable to an array slice:</p>
<pre>    my @array_slice := @array[1,3,5]</pre>
<p>Luke Palmer thought it would have to be, because if it weren't</p>
<pre>    my *@fibs := (1, 1, map { $^a  + $^b} zip(@fibs, @fibs[1...]));</pre>
<p>wouldn't work (and that would be a bad thing because?)</p>
<p>Damian pointed out that it sort of worked already in Perl 5. This
started people discussing what the Right Thing would finally be in
Perl 6.</p>
<p><a href='http://groups.google.com/groups?threadm=20030704184357.017b86c5.dbrook@easyspace.com' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements and Apologies'></a><h1>Acknowledgements, Announcements and Apologies</h1>
<p>Look, I'm sorry the Summary's late, okay? OSCON is an incredibly
distracting thing to be present at; every time I settled down to
write I got drawn into another fascinating conversation and before I
knew it it was time to go back to my hotel. Which is, of course, where
I managed to knuckle down and write this.</p>
<p>Thanks to Curtis Poe for putting us up for the first couple of nights
in Portland, and to Tom Phoenix for being a top notch Native Guide. No
thanks to Powell's City of Books <a href='http://www.powells.com' target='_blank'>www.powells.com</a> for having
far too much good stuff in stock. Thankfully, they ship.</p>
<p>As ever, if you've appreciated this summary, please consider one or
more of the following options:</p>
<ul>
<li><a name='Send money to the Perl Foundation at donate.perl-foundation.org/ and help support the ongoing development of Perl.'></a>Send money to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl.</li>
<li><a name='Get involved in the Perl 6 process. The mailing lists are open to all. dev.perl.org/perl6/ and www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.'></a>Get involved in the Perl 6 process. The mailing lists are open  to
all. <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a>
are good starting points with links to the appropriate mailing lists.</li>
<li><a name='Send feedback, flames, money, photographic and writing commissions, or a cute little iSight to p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>.'></a>Send feedback, flames, money, photographic and writing commissions, or
a cute little iSight to <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i>.</li>
</ul>
</div>
